//
//  Extension+NSDate.swift
//  XJWeiBO
//
//  Created by 452608533 on 16/7/27.
//  Copyright © 2016年 452608533. All rights reserved.
//

import UIKit

///  在ios开发中 对于 NSDateFormatter 和 NSCalendar.currentCalendar() 当创建或者销毁的时候 特别消耗性能
// 解决方案: swift中创建一个常量 如果在oc中 可以定义一个单例

private let df = NSDateFormatter()
//日历类
private let calendar = NSCalendar.currentCalendar()

extension NSDate{
    
    //定义类方法
    //获取微博日期
    class func sinaDate(createAt:String) -> NSDate?{
        df.locale = NSLocale(localeIdentifier: "en_US")
        df.dateFormat = "EEE MMM dd HH:mm:ss z yyyy"
        
        return df.dateFromString(createAt)
    }
    //获取微博字符串
    var sinaDescripition: String{
        //定义一个属性来判断是否是今年
        let isThisYear = sinaIsThisYear(self)
        
        //是今年
        if isThisYear{
            //是今天
            if calendar.isDateInToday(self){
                let s = Int(NSDate().timeIntervalSinceDate(self))
                
                if s < 60 {
                    return "刚刚"
                }else if s >= 60 && s < 3600{
                    return "\(s/60)分钟前"
                }else{
                    return "\(s/3600)小时前"
                }
            }else if calendar.isDateInYesterday(self){
                //昨天
                df.dateFormat = "昨天 HH:mm"
            }else{
                df.dateFormat = "MM月dd日 HH:mm"
            }
        }else{
            //不是今年
            df.dateFormat = "yyyy年MM月dd日"
        }
        return df.stringFromDate(self)
    }
    
    
    //判断时间是否是今年
    func sinaIsThisYear(sinaDate: NSDate) -> Bool{
        //指定区域
        df.locale = NSLocale(localeIdentifier: "en_US")
        
        df.dateFormat = "yyyy"
        //获取当前时间
        let currrentDate = NSDate()
        //获取日期字符串
        let sinaStr = df.stringFromDate(sinaDate)
        
        let currentStr = df.stringFromDate(currrentDate)
        
        return sinaStr == currentStr
        
    }
    
}


















